# IMG_PATH = "../input/animals-data/dataset/"
# IMG_DATA_PATH = "../data/data_oil_for_classification/images/"   #  small_data_oil | CarbonateImages/STAT_FULL_old_aug | CarbonateImages/DYNA_FULL_old_aug
IMG_DATA_PATH = "../data/data_oil_for_classification/train/"   #  small_data_oil | CarbonateImages/STAT_FULL_old_aug | CarbonateImages/DYNA_FULL_old_aug
TRAIN_DATA_PATH = "../data/data_oil_for_classification/train/"
TEST_DATA_PATH = "../data/data_oil_for_classification/test/"
# CIFAR-10
# IMG_DATA_PATH = "../data/CIFAR10/train_noclass/"
# TRAIN_DATA_PATH = "../data/CIFAR10/train/"
# TEST_DATA_PATH = "../data/CIFAR10/test/"

CIFAR_DATA_PATH= "F:\\.keras\\datasets\\"
DATASET_NAME = "data_oil_for_classification"
# "data_oil_for_classification" | "cifar10"  "small_basic_oil"  "small_data_oil"  STAT_FULL_old_aug  DYNA_FULL_old_aug
NUM_CLASSES = 6   # 21 | 6
IMG_HEIGHT = 250  # The images are already resized here 250 | 28 | 32 | 64
IMG_WIDTH = 250 # The images are already resized here 250 | 28 | 32 | 64
PATCH_STEP_SIZE = 125
HOG_pixels_per_cell = 25

SEED = 42
TRAIN_RATIO = 0.75
VAL_RATIO = 1 - TRAIN_RATIO
SHUFFLE_BUFFER_SIZE = 100

LEARNING_RATE = 1e-3
EPOCHS = 10
TRAIN_BATCH_SIZE = 4  # Let's see, I don't have GPU, Google Colab is best hope
TEST_BATCH_SIZE = 4  # Let's see, I don't have GPU, Google Colab is best hope
FULL_BATCH_SIZE = 4


######################################
# resizer模块相关参数
in_channels= 1       # Number of input channels of resizer (for RGB images it is 3)
out_channels= 1      # Number of output channels of resizer (for RGB images it is 3)
num_kernels = 16      # Same as `n` in paper
num_resblocks = 2     # Same as 'r' in paper
negative_slope = 0.2  # Used by leaky relu
interpolate_mode= "bilinear"  # Passed to torch.nn.functional.interpolate
image_size = 250 #  250 | 28 | 64
resizer_image_size = 250 # 224 250 | 28 | 64
###### Train and Test time #########
METHOD_NAME = "classical_features"
SCALE_POLICY = "mean_std"  # min_max | mean_std
# Decode type
DECODE_LOGIT_TYPE = "linear" # rbf | linear
DATA_PATH = "../data/data_oil_for_classification/STAT_FULL_old_aug/images/all/"
MODEL_DIR_PATH = "../models/classical_features_models/{}/".format(DATASET_NAME)
AUTOENCODER_MODEL_PATH = "baseline_autoencoder.pt"
ENCODER_MODEL_PATH = "../models/classical_features_models/{}/encoder_lr{}_{}_epoch{}.pt".format(DATASET_NAME,str(LEARNING_RATE),DECODE_LOGIT_TYPE,EPOCHS)
DECODER_MODEL_PATH = "../models/classical_features_models/{}/decoder_lr{}_{}_epoch{}.pt".format(DATASET_NAME,str(LEARNING_RATE),DECODE_LOGIT_TYPE,EPOCHS)
EMBEDDING_PATH = "../models/classical_features_models/{}/data_embedding_f.npy".format(DATASET_NAME)
EMBEDDING_LABEL_PATH = "../models/classical_features_models/{}/label_embedding_f.npy".format(DATASET_NAME)
EMBEDDING_PATH_2 = "../models/classical_features_models/{}/data_embedding_f_2.npy".format(DATASET_NAME)
EMBEDDING_LABEL_PATH_2 = "../models/classical_features_models/{}/label_embedding_f_2.npy".format(DATASET_NAME)
FAISS_INDEX_DIR_PATH = "../models/classical_features_models/{}/".format(DATASET_NAME)
FAISS_INDEX_PATH = "../models/classical_features_models/{}/faiss.index".format(DATASET_NAME)
FAISS_INDEX_MAP = "../models/classical_features_models/{}/faiss.map".format(DATASET_NAME)
FAISS_LABELS_INDEX_PATH = "faiss_label.index"
FAISS_LABELS_INDEX_MAP = "faiss_label.map"
EMB_SCALE_PARA1_PATH = "../models/classical_features_models/{}/emb_scale_p_1.npy".format(DATASET_NAME)
EMB_SCALE_PARA2_PATH = "../models/classical_features_models/{}/emb_scale_p_2.npy".format(DATASET_NAME)
# Feature
# FEATURE_LIST = feature_list = ["Hus", "CLCM", "hog", "orb"]
FEATURE_LIST = feature_list = ["Hus", "CLCM", "hog"]
# FEATURE_LIST = feature_list = ["Hus", "CLCM"]
# Embedding shape for each image
# glcm_features.shape: (150,)  (IMG_HEIGHT / PATCH_STEP_SIZE) * 6
# hus_features.shape: (175,)    (IMG_HEIGHT / PATCH_STEP_SIZE) * 7
# hog_features.shape: (900,)   (IMG_HEIGHT / PATCH_STEP_SIZE) * 36
# mean and var   (IMG_HEIGHT / PATCH_STEP_SIZE) * 2
EMBEDDING_SHAPE = (1, 2364)  # based on features method , hava hog :1275, no hog:375
LABEL_EMBEDDING_SHAPE = (1,)

# TEST_RATIO = 0.2

###### Test time #########
NUM_IMAGES = 10
TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/liefeng/0003.png"
# TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/liefeng/0794.png"
# TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/train/liefeng/0525.png"
# TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/wenceng/2004.png"
TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/lishi/3112.png"
TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/youdaofeng/5185.png"
TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/rongkong/1265.png"
TEST_IMAGE_PATH = "../data/small_data_oil_for_classification/test/ansetiaodai/4391.png"
# TEST_IMAGE_PATH = "F:\\DataSet\\tiny-imagenet-200\\test\\n01443537\\n01443537_0.JPEG"


